| Download
Tutorial vector calculus 1: Cartesian coordinates
Project: A Project
Path: SageManifolds/Notebooks/SM_vector_calc_cartesian.ipynb / <html><head><title>< / title><meta charset="utf-8"><meta name=viewport content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0"><style> body { margin: 0px; overflow: hidden; } < / style>< / head><body><script src="https: / cdn.rawgit.com / mrdoob / three.js / r80 / build / three.min.js">< / script><script src="https: / cdn.rawgit.com / mrdoob / three.js / r80 / examples / js / controls / OrbitControls.js">< / script> <script> var scene = new THREE.Scene(); var renderer = new THREE.WebGLRenderer( { antialias: true } ); renderer.setSize( window.innerWidth, window.innerHeight ); renderer.setClearColor( 0xffffff, 1 ); document.body.appendChild( renderer.domElement ); var options = {"aspect_ratio": [1.0, 1.0, 1.0], "decimals": 2, "frame": true, "axes": false, "axes_labels": ["x", "y", "z"]}; / When animations are supported by the viewer, the value 'false' / will be replaced with an option set in Python by the user var animate = false; / options.animate; var b = [{"x":-2.53984245884, "y":-2.53529721714, "z":-2.27120532538}, {"x":2.53529721714, "y":2.30915429175, "z":2.06473211399}]; / bounds if ( b[0].x === b[1].x ) { b[0].x -= 1; b[1].x += 1; } if ( b[0].y === b[1].y ) { b[0].y -= 1; b[1].y += 1; } if ( b[0].z === b[1].z ) { b[0].z -= 1; b[1].z += 1; } var rRange = Math.sqrt( Math.pow( b[1].x - b[0].x, 2 ) + Math.pow( b[1].x - b[0].x, 2 ) ); var xRange = b[1].x - b[0].x; var yRange = b[1].y - b[0].y; var zRange = b[1].z - b[0].z; var ar = options.aspect_ratio; var a = [ ar[0], ar[1], ar[2] ]; / aspect multipliers var autoAspect = 2.5; if ( zRange > autoAspect * rRange && a[2] === 1 ) a[2] = autoAspect * rRange / zRange; var xMid = ( b[0].x + b[1].x ) / 2; var yMid = ( b[0].y + b[1].y ) / 2; var zMid = ( b[0].z + b[1].z ) / 2; var box = new THREE.Geometry(); box.vertices.push( new THREE.Vector3( a[0]*b[0].x, a[1]*b[0].y, a[2]*b[0].z ) ); box.vertices.push( new THREE.Vector3( a[0]*b[1].x, a[1]*b[1].y, a[2]*b[1].z ) ); var boxMesh = new THREE.LineSegments( box ); if ( options.frame ) scene.add( new THREE.BoxHelper( boxMesh, 'black' ) ); if ( options.axes_labels ) { var d = options.decimals; / decimals var offsetRatio = 0.1; var al = options.axes_labels; var offset = offsetRatio * a[1]*( b[1].y - b[0].y ); var xm = xMid.toFixed(d); if ( / ^-0.
Views: 694There was a problem loading <html><head><title></title><meta charset="utf-8"><meta name=viewport content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0"><style> body { margin: 0px; overflow: hidden; } </style></head><body><script src="https:/cdn.rawgit.com/mrdoob/three.js/r80/build/three.min.js"></script><script src="https:/cdn.rawgit.com/mrdoob/three.js/r80/examples/js/controls/OrbitControls.js"></script> <script> var scene = new THREE.Scene(); var renderer = new THREE.WebGLRenderer( { antialias: true } ); renderer.setSize( window.innerWidth, window.innerHeight ); renderer.setClearColor( 0xffffff, 1 ); document.body.appendChild( renderer.domElement ); var options = {"aspect_ratio": [1.0, 1.0, 1.0], "decimals": 2, "frame": true, "axes": false, "axes_labels": ["x", "y", "z"]}; / When animations are supported by the viewer, the value 'false' / will be replaced with an option set in Python by the user var animate = false; / options.animate; var b = [{"x":-2.53984245884, "y":-2.53529721714, "z":-2.27120532538}, {"x":2.53529721714, "y":2.30915429175, "z":2.06473211399}]; / bounds if ( b[0].x === b[1].x ) { b[0].x -= 1; b[1].x += 1; } if ( b[0].y === b[1].y ) { b[0].y -= 1; b[1].y += 1; } if ( b[0].z === b[1].z ) { b[0].z -= 1; b[1].z += 1; } var rRange = Math.sqrt( Math.pow( b[1].x - b[0].x, 2 ) + Math.pow( b[1].x - b[0].x, 2 ) ); var xRange = b[1].x - b[0].x; var yRange = b[1].y - b[0].y; var zRange = b[1].z - b[0].z; var ar = options.aspect_ratio; var a = [ ar[0], ar[1], ar[2] ]; / aspect multipliers var autoAspect = 2.5; if ( zRange > autoAspect * rRange && a[2] === 1 ) a[2] = autoAspect * rRange / zRange; var xMid = ( b[0].x + b[1].x ) / 2; var yMid = ( b[0].y + b[1].y ) / 2; var zMid = ( b[0].z + b[1].z ) / 2; var box = new THREE.Geometry(); box.vertices.push( new THREE.Vector3( a[0]*b[0].x, a[1]*b[0].y, a[2]*b[0].z ) ); box.vertices.push( new THREE.Vector3( a[0]*b[1].x, a[1]*b[1].y, a[2]*b[1].z ) ); var boxMesh = new THREE.LineSegments( box ); if ( options.frame ) scene.add( new THREE.BoxHelper( boxMesh, 'black' ) ); if ( options.axes_labels ) { var d = options.decimals; / decimals var offsetRatio = 0.1; var al = options.axes_labels; var offset = offsetRatio * a[1]*( b[1].y - b[0].y ); var xm = xMid.toFixed(d); if ( /^-0. in SageManifolds/Notebooks/SM_vector_calc_cartesian.ipynb.
Error: ENOTDIR: not a directory, lstat '/storage/shares/default/project-618508ec-6aad-4269-867d-062df6963ef8/SageManifolds/Notebooks/SM_vector_calc_cartesian.ipynb/<html><head><title></title><meta charset="utf-8"><meta name=viewport content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0"><style> body { margin: 0px; overflow: hidden; } </style></head><body><script src="https:/cdn.rawgit.com/mrdoob/three.js/r80/build/three.min.js"></script><script src="https:/cdn.rawgit.com/mrdoob/three.js/r80/examples/js/controls/OrbitControls.js"></script> <script> var scene = new THREE.Scene(); var renderer = new THREE.WebGLRenderer( { antialias: true } ); renderer.setSize( window.innerWidth, window.innerHeight ); renderer.setClearColor( 0xffffff, 1 ); document.body.appendChild( renderer.domElement ); var options = {"aspect_ratio": [1.0, 1.0, 1.0], "decimals": 2, "frame": true, "axes": false, "axes_labels": ["x", "y", "z"]}; / When animations are supported by the viewer, the value 'false' / will be replaced with an option set in Python by the user var animate = false; / options.animate; var b = [{"x":-2.53984245884, "y":-2.53529721714, "z":-2.27120532538}, {"x":2.53529721714, "y":2.30915429175, "z":2.06473211399}]; / bounds if ( b[0].x === b[1].x ) { b[0].x -= 1; b[1].x += 1; } if ( b[0].y === b[1].y ) { b[0].y -= 1; b[1].y += 1; } if ( b[0].z === b[1].z ) { b[0].z -= 1; b[1].z += 1; } var rRange = Math.sqrt( Math.pow( b[1].x - b[0].x, 2 ) + Math.pow( b[1].x - b[0].x, 2 ) ); var xRange = b[1].x - b[0].x; var yRange = b[1].y - b[0].y; var zRange = b[1].z - b[0].z; var ar = options.aspect_ratio; var a = [ ar[0], ar[1], ar[2] ]; / aspect multipliers var autoAspect = 2.5; if ( zRange > autoAspect * rRange && a[2] === 1 ) a[2] = autoAspect * rRange / zRange; var xMid = ( b[0].x + b[1].x ) / 2; var yMid = ( b[0].y + b[1].y ) / 2; var zMid = ( b[0].z + b[1].z ) / 2; var box = new THREE.Geometry(); box.vertices.push( new THREE.Vector3( a[0]*b[0].x, a[1]*b[0].y, a[2]*b[0].z ) ); box.vertices.push( new THREE.Vector3( a[0]*b[1].x, a[1]*b[1].y, a[2]*b[1].z ) ); var boxMesh = new THREE.LineSegments( box ); if ( options.frame ) scene.add( new THREE.BoxHelper( boxMesh, 'black' ) ); if ( options.axes_labels ) { var d = options.decimals; / decimals var offsetRatio = 0.1; var al = options.axes_labels; var offset = offsetRatio * a[1]*( b[1].y - b[0].y ); var xm = xMid.toFixed(d); if ( /^-0.'
Error: ENOTDIR: not a directory, lstat '/storage/shares/default/project-618508ec-6aad-4269-867d-062df6963ef8/SageManifolds/Notebooks/SM_vector_calc_cartesian.ipynb/<html><head><title></title><meta charset="utf-8"><meta name=viewport content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0"><style> body { margin: 0px; overflow: hidden; } </style></head><body><script src="https:/cdn.rawgit.com/mrdoob/three.js/r80/build/three.min.js"></script><script src="https:/cdn.rawgit.com/mrdoob/three.js/r80/examples/js/controls/OrbitControls.js"></script> <script> var scene = new THREE.Scene(); var renderer = new THREE.WebGLRenderer( { antialias: true } ); renderer.setSize( window.innerWidth, window.innerHeight ); renderer.setClearColor( 0xffffff, 1 ); document.body.appendChild( renderer.domElement ); var options = {"aspect_ratio": [1.0, 1.0, 1.0], "decimals": 2, "frame": true, "axes": false, "axes_labels": ["x", "y", "z"]}; / When animations are supported by the viewer, the value 'false' / will be replaced with an option set in Python by the user var animate = false; / options.animate; var b = [{"x":-2.53984245884, "y":-2.53529721714, "z":-2.27120532538}, {"x":2.53529721714, "y":2.30915429175, "z":2.06473211399}]; / bounds if ( b[0].x === b[1].x ) { b[0].x -= 1; b[1].x += 1; } if ( b[0].y === b[1].y ) { b[0].y -= 1; b[1].y += 1; } if ( b[0].z === b[1].z ) { b[0].z -= 1; b[1].z += 1; } var rRange = Math.sqrt( Math.pow( b[1].x - b[0].x, 2 ) + Math.pow( b[1].x - b[0].x, 2 ) ); var xRange = b[1].x - b[0].x; var yRange = b[1].y - b[0].y; var zRange = b[1].z - b[0].z; var ar = options.aspect_ratio; var a = [ ar[0], ar[1], ar[2] ]; / aspect multipliers var autoAspect = 2.5; if ( zRange > autoAspect * rRange && a[2] === 1 ) a[2] = autoAspect * rRange / zRange; var xMid = ( b[0].x + b[1].x ) / 2; var yMid = ( b[0].y + b[1].y ) / 2; var zMid = ( b[0].z + b[1].z ) / 2; var box = new THREE.Geometry(); box.vertices.push( new THREE.Vector3( a[0]*b[0].x, a[1]*b[0].y, a[2]*b[0].z ) ); box.vertices.push( new THREE.Vector3( a[0]*b[1].x, a[1]*b[1].y, a[2]*b[1].z ) ); var boxMesh = new THREE.LineSegments( box ); if ( options.frame ) scene.add( new THREE.BoxHelper( boxMesh, 'black' ) ); if ( options.axes_labels ) { var d = options.decimals; / decimals var offsetRatio = 0.1; var al = options.axes_labels; var offset = offsetRatio * a[1]*( b[1].y - b[0].y ); var xm = xMid.toFixed(d); if ( /^-0.'